package com.sxy.mapper;

import com.sxy.pojo.Stu;
import org.apache.ibatis.annotations.Param;
import org.apache.ibatis.annotations.Select;

import java.util.List;
import java.util.Map;

/**
 * @author 宋鑫宇
 * @version 1.0
 */
public interface StuMapper {
    /*
        编写方法
     */
    public List<Stu> selectAll();
    /*
        使用注解式开发
     */
    @Select("select * from stu where id=#{id}")
    public Stu selectById(int id);

    /*   1.如果方法中有多个参数，需要使用@Param注解来选择接收数据的属性
         2.对象参数名称要和参数占位符名称一致
         3.Mybatis参数封装
            单个参数：
                1.（pojo）实体类对象型
                2. Map集合
                3. Collection：也会封装成Map集合
                    map.put("agr0",参数值1)
                    map.put("collection",参数值1)
                4. List：也会封装成Map集合
                5. array：也会封装成Map集合
                6. 其他类型
            多个参数：封装为Map集合，可以使用@param注解，替换Map集合中默认的agr键名
                map.put("agr0",参数值1)
                map.put("arg1",参数值2)
                map.put("param1",参数值1)
                map.put("param2",参数值2)
     */
    List<Stu> selectByCondition(@Param("name") String name, @Param("stu_class") int stu_class);

    List<Stu> selectByCondition(Stu stu);

    List<Stu> selectByCondition(Map map);

    List<Stu> selectByConditionSingle(Stu stu);

    void add(Stu stu);

    void update(int id);

    void deleteByIds(int[] ids);

}
